import {UserConfig, ConfigEnv, loadEnv} from 'vite'
import vue from '@vitejs/plugin-vue'
// 如果编辑器提示 path 模块找不到，则可以安装一下 @types/node -> npm i @types/node -D
import path from 'path'

// @see: https://gitee.com/holysheng/vite2-config-description/blob/master/vite.config.ts

export default ({command, mode}: ConfigEnv): UserConfig => {
    // 获取 .env 环境配置文件
    const env = loadEnv(mode, process.cwd())

    return (
        {
            plugins: [
                vue(),
            ],
            // 本地反向代理解决浏览器跨域限制
            server: {
                host: 'localhost',
                port: Number(env.VITE_APP_PORT),
                open: true, // 运行自动打开浏览器
                proxy: {
                    [env.VITE_APP_BASE_API]: {
                        target: 'http://127.0.0.1:8080',//http://127.0.0.1:8080
                        changeOrigin: true,
                        rewrite: path => path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
                    }
                }
            },
            build: {
                target: 'modules', //设置最终构建的浏览器兼容目标  //es2015(编译成es5) | modules
                outDir: 'dist', // 构建得包名  默认：dist
                assetsDir: 'assets', // 静态资源得存放路径文件名  assets
                sourcemap: false, //构建后是否生成 source map 文件
                brotliSize: false, // 启用/禁用 brotli 压缩大小报告。 禁用该功能可能会提高大型项目的构建性能
                minify: 'esbuild', // 项目压缩 :boolean | 'terser' | 'esbuild'
                chunkSizeWarningLimit: 1000, //chunk 大小警告的限制（以 kbs 为单位）默认：500
            },
            resolve: {
                // Vite2设置别名路径方式一
                alias: {
                    "@": path.resolve("./src"),  // 相对路径别名配置，@表示src
                }
            }
        }


    )
}





